package registnet.records;

public class Grade {

	private Student student;
	private int semester;
	private int year;
	private ICourse course;
	private Section section;
	private int credit;
	private double grade;
	private String remarks;
	
	/**
	 * Default constructor
	 */
	public Grade(){}
	
	/**
	 * Constructs a grade with the given parameters
	 * 
	 * @param student - The student who obtained the grade
	 * @param semester - The student who obtained the grade
	 * @param year - The year when the grade was obtained
	 * @param section - The course in which the grade was obtained
	 * @param grade - The grade obtained
	 */
	public Grade(Student student, int semester, int year, ICourse course, double grade){
		this.student = student;
		this.semester = semester;
		this.year = year;
		this.course = course;
		this.grade = grade;
	}

	
	/**
	 * Constructs a grade with the given parameters
	 * 
	 * @param student - The student who obtained the grade
	 * @param semester - The student who obtained the grade
	 * @param year - The year when the grade was obtained
	 * @param course - The course in which the grade was obtained
	 * @param section - The section in which the grade was obtained
	 * @param grade - The grade obtained
	 */
	public Grade(Student student, int semester, int year, ICourse course, Section section, double grade){
		this.student = student;
		this.semester = semester;
		this.year = year;
		this.course = course;
		this.section = section;
		this.grade = grade;
	}
	
	
	/**
	 * Constructs a grade with the given parameters
	 * 
	 * @param student - The student who obtained the grade
	 * @param course - The course in which the grade was obtained
	 * @param grade - The grade obtained
	 */
	public Grade(Student student, ICourse course, double grade){
		this.student = student;
		this.course = course;
		this.grade = grade;
	}
	
	
	/**
	 * Gets the student who obtained the grade
	 * 
	 * @return	The student who obtained the grade
	 */
	public Student getStudent() {
		return student;
	}

	
	/**
	 * Sets the student who obtained the grade
	 * 
	 * @param student - The student who obtained the grade
	 */
	public void setStudent(Student student) {
		this.student = student;
	}
	
	
	/**
	 * Gets the semester when the grade was obtained
	 * 
	 * @return 	The semester when the grade was obtained
	 */
	public int getSemester() {
		return semester;
	}

	
	/**
	 * Sets the semester when the grade was obtained
	 * 
	 * @param semester - The semester when the grade was obtained
	 */
	public void setSemester(int semester) {
		this.semester = semester;
	}

	
	/**
	 * Gets the year when the grade was obtained
	 * 
	 * @return	The year when the grade was obtained
	 */
	public int getYear() {
		return year;
	}

	
	/**
	 * Sets the year when the grade was obtained
	 * 
	 * @param year - The year when the grade was obtained
	 */
	public void setYear(int year) {
		this.year = year;
	}

	
	/**
	 * Gets the course in which the grade was obtained
	 * 
	 * @return	The course in which the grade was obtained
	 */
	public ICourse getCourse() {
		return course;
	}

	
	/**
	 * Sets the course in which the grade was obtained
	 * 
	 * @param course - The course in which the grade was obtained
	 */
	public void setCourse(ICourse course) {
		this.course = course;
	}

	
	/**
	 * Gets the section in which the grade was obtained
	 * 
	 * @return	The section in which the grade was obtained
	 */
	public Section getSection(){
		return this.section;
	}
	
	
	/**
	 * Sets the section in which the grade was obtained
	 * 
	 * @param section - The section in which the grade was obtained
	 */
	public void setSection(Section section){
		this.section = section;
	}
	
	
	/**
	 * Gets the credit earned
	 * 
	 * @return	The credit earned
	 */
	public int getCredit() {
		return credit;
	}

	
	/**
	 * Sets the credit earned
	 * 
	 * @param credit - The credit earned
	 */
	public void setCredit(int credit) {
		this.credit = credit;
	}

	
	/**
	 * Gets the grade obtained
	 * 
	 * @return	The grade obtained
	 */
	public double getGrade() {
		return grade;
	}

	
	/**
	 * Sets the grade obtained
	 * 
	 * @param grade - The grade obtained
	 */
	public void setGrade(double grade) {
		this.grade = grade;
	}

	
	/**
	 * Gets the remarks received
	 * 
	 * @return	The remarks received
	 */
	public String getRemarks() {
		return remarks;
	}

	
	/**
	 * Sets the remarks received
	 * 
	 * @param remarks - The remarks received
	 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}
	
}
